<?php
// templates/messages_admin.php
require_admin(); // فقط ادمین‌ها می‌توانند به این صفحه دسترسی داشته باشند

// دریافت اطلاعات کاربران برای dropdown
try {
    $users = $pdo->query("
        SELECT id, username, full_name, phone 
        FROM users 
        WHERE is_active = 1 AND id != " . $_SESSION['user_id'] . " 
        ORDER BY full_name ASC
    ")->fetchAll();
} catch (Exception $e) {
    $users = [];
}

// دریافت مکالمات ادمین (گروه‌بندی شده بر اساس مخاطب و موضوع)
try {
    // گروه‌بندی بر اساس contact_id و subject باعث می‌شود هر موضوع یک ردیف جداگانه باشد
    $conversations_stmt = $pdo->prepare("
        SELECT 
            CASE 
                WHEN pm.sender_id = :admin_id THEN pm.receiver_id
                ELSE pm.sender_id
            END as contact_id,
            CASE 
                WHEN pm.sender_id = :admin_id THEN u_receiver.full_name
                ELSE u_sender.full_name
            END as contact_name,
            CASE 
                WHEN pm.sender_id = :admin_id THEN u_receiver.username
                ELSE u_sender.username
            END as contact_username,
            pm.subject,
            MAX(pm.created_at) as last_message_date,
            COUNT(CASE WHEN pm.receiver_id = :admin_id AND pm.is_read = 0 THEN 1 END) as unread_count,
            COUNT(pm.id) as total_messages
        FROM personal_messages pm
        LEFT JOIN users u_sender ON pm.sender_id = u_sender.id
        LEFT JOIN users u_receiver ON pm.receiver_id = u_receiver.id
        WHERE (pm.sender_id = :admin_id OR pm.receiver_id = :admin_id)
        AND ((pm.sender_id = :admin_id AND pm.sender_deleted = 0) 
            OR (pm.receiver_id = :admin_id AND pm.receiver_deleted = 0))
        GROUP BY contact_id, pm.subject
        ORDER BY last_message_date DESC
    ");
    $conversations_stmt->execute(['admin_id' => $_SESSION['user_id']]);
    $conversations = $conversations_stmt->fetchAll();
} catch (Exception $e) {
    error_log("Error loading conversations: " . $e->getMessage());
    $conversations = [];
}

// محاسبه تعداد کل پیام‌های خوانده نشده
$total_unread_messages = 0;
foreach ($conversations as $conv) {
    $total_unread_messages += $conv['unread_count'];
}

// دریافت آخرین پیام عمومی فعال
try {
    $current_public_message = $pdo->query("
        SELECT * FROM public_messages 
        WHERE is_active = 1 
        ORDER BY created_at DESC 
        LIMIT 1
    ")->fetch();
} catch (Exception $e) {
    $current_public_message = null;
}

// دریافت لیست همه اعلان‌ها برای جدول تاریخچه
try {
    $all_public_messages = $pdo->query("
        SELECT * FROM public_messages 
        ORDER BY created_at DESC 
        LIMIT 20
    ")->fetchAll();
} catch (Exception $e) {
    $all_public_messages = [];
}
?>

<div class="messages-admin-container">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2 class="text-warning mb-0">📩 مدیریت پیام‌ها</h2>
        
        <?php if ($total_unread_messages > 0): ?>
            <div class="unread-counter-badge">
                <span class="badge bg-danger pulse-animation">
                    <i class="fas fa-envelope me-1"></i>
                    <?= $total_unread_messages ?> پیام خوانده نشده
                </span>
            </div>
        <?php else: ?>
            <div class="unread-counter-badge">
                <span class="badge bg-success">
                    <i class="fas fa-check-circle me-1"></i>
                    همه پیام‌ها خوانده شده‌اند
                </span>
            </div>
        <?php endif; ?>
    </div>
    
    <ul class="nav nav-tabs mb-4" id="messagesTab" role="tablist">
        <li class="nav-item" role="presentation">
            <button class="nav-link active" id="personal-tab" data-bs-toggle="tab" data-bs-target="#personal" type="button" role="tab">
                ✉️ پیام‌های شخصی
            </button>
        </li>
        <li class="nav-item" role="presentation">
            <button class="nav-link" id="public-tab" data-bs-toggle="tab" data-bs-target="#public" type="button" role="tab">
                📢 پیام‌های عمومی
                <?php if ($current_public_message): ?>
                    <span class="badge bg-<?= $current_public_message['is_important'] ? 'danger' : 'warning' ?> ms-1">
                        فعال
                    </span>
                <?php endif; ?>
            </button>
        </li>
    </ul>
    
    <div class="tab-content" id="messagesTabContent">
        
        <div class="tab-pane fade show active" id="personal" role="tabpanel">
            <div class="row">
                <div class="col-md-5 mb-4">
                    <div class="card bg-dark">
                        <div class="card-header bg-primary">
                            <h5 class="mb-0">📤 ارسال پیام جدید</h5>
                            <small class="text-light">(ایجاد گفتگوی جدید)</small>
                        </div>
                        <div class="card-body">
                            <form id="sendMessageForm">
                                <div class="mb-3">
                                    <label for="receiverSelect" class="form-label">گیرنده پیام:</label>
                                    <select class="form-control" id="receiverSelect" required>
                                        <option value="">-- انتخاب کاربر --</option>
                                        <?php foreach ($users as $user): ?>
                                            <option value="<?= $u['id'] ?? $user['id'] ?>">
                                                <?= htmlspecialchars($user['full_name']) ?> 
                                                (<?= htmlspecialchars($user['username']) ?>)
                                            </option>
                                        <?php endforeach; ?>
                                    </select>
                                    <div class="form-text">این پیام یک گفتگوی جدید ایجاد می‌کند</div>
                                </div>
                                
                                <div class="mb-3">
                                    <label for="messageSubject" class="form-label">عنوان پیام:</label>
                                    <input type="text" class="form-control" id="messageSubject" 
                                           placeholder="عنوان پیام را وارد کنید" required>
                                    <div class="form-text">عنوان برای گفتگوی جدید</div>
                                </div>
                                
                                <div class="mb-3">
                                    <label for="messageContent" class="form-label">متن پیام:</label>
                                    <textarea class="form-control" id="messageContent" 
                                              rows="6" 
                                              placeholder="متن پیام خود را بنویسید..."
                                              required></textarea>
                                </div>
                                
                                <button type="submit" class="btn btn-primary w-100">
                                    <i class="fas fa-paper-plane me-2"></i> ارسال پیام جدید
                                </button>
                            </form>
                        </div>
                    </div>
                </div>
                
                <div class="col-md-7">
                    <div class="card bg-dark">
                        <div class="card-header bg-info">
                            <h5 class="mb-0">📥 مکالمات من</h5>
                            <small class="text-light">(برای ادامه گفتگو روی هر ردیف کلیک کنید)</small>
                        </div>
                        <div class="card-body">
                            <div class="table-responsive">
                                <table class="table table-dark table-hover">
                                    <thead>
                                        <tr>
                                            <th>کاربر</th>
                                            <th>موضوع</th>
                                            <th>آخرین پیام</th>
                                            <th>عملیات</th>
                                        </tr>
                                    </thead>
                                    <tbody id="conversationsList">
                                        <?php if (empty($conversations)): ?>
                                            <tr>
                                                <td colspan="4" class="text-center py-4">
                                                    <div class="empty-state">
                                                        <i class="fas fa-comments fa-3x text-muted mb-3"></i>
                                                        <h5 class="text-muted">📭 هیچ مکالمه‌ای وجود ندارد</h5>
                                                    </div>
                                                </td>
                                            </tr>
                                        <?php else: ?>
                                            <?php foreach ($conversations as $conv): ?>
                                                <?php
                                                $unread_class = $conv['unread_count'] > 0 ? 'unread-message' : '';
                                                // اسکیپ کردن برای جاوااسکریپت
                                                $safe_subject = htmlspecialchars(addslashes($conv['subject']));
                                                $safe_name = htmlspecialchars(addslashes($conv['contact_name']));
                                                ?>
                                                <tr class="conversation-row <?= $unread_class ?>" 
                                                    onclick="viewConversation(<?= $conv['contact_id'] ?>, '<?= $safe_name ?>', '<?= $safe_subject ?>')">
                                                    <td>
                                                        <div class="d-flex align-items-center">
                                                            <div class="user-avatar me-2">
                                                                <div class="avatar-circle bg-<?= $conv['unread_count'] > 0 ? 'danger' : 'secondary' ?>">
                                                                    <?= mb_substr($conv['contact_name'], 0, 1) ?>
                                                                </div>
                                                            </div>
                                                            <div>
                                                                <strong><?= htmlspecialchars($conv['contact_name']) ?></strong>
                                                            </div>
                                                        </div>
                                                    </td>
                                                    <td>
                                                        <div class="conversation-preview">
                                                            <strong class="d-block text-warning"><?= htmlspecialchars($conv['subject']) ?></strong>
                                                        </div>
                                                    </td>
                                                    <td>
                                                        <small class="text-muted">
                                                            <?= date('Y/m/d H:i', strtotime($conv['last_message_date'])) ?>
                                                        </small>
                                                        <?php if ($conv['unread_count'] > 0): ?>
                                                            <br><span class="badge bg-danger rounded-pill"><?= $conv['unread_count'] ?></span>
                                                        <?php endif; ?>
                                                    </td>
                                                    <td>
                                                        <button class="btn btn-sm btn-danger delete-conversation-btn" 
                                                                title="حذف مکالمه"
                                                                onclick="event.stopPropagation(); deleteConversation(<?= $conv['contact_id'] ?>, '<?= $safe_subject ?>')">
                                                            <i class="fas fa-trash"></i>
                                                        </button>
                                                    </td>
                                                </tr>
                                            <?php endforeach; ?>
                                        <?php endif; ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
        
        <div class="tab-pane fade" id="public" role="tabpanel">
            <div class="row">
                <div class="col-md-12">
                    <div class="card bg-dark">
                        <div class="card-header bg-warning">
                            <h5 class="mb-0 text-dark">📢 مدیریت پیام‌های عمومی (اعلانات)</h5>
                        </div>
                        <div class="card-body">
                            <?php if ($current_public_message): ?>
                                <div class="card mb-4 <?= $current_public_message['is_important'] ? 'border-danger' : 'border-warning' ?>">
                                    <div class="card-header bg-<?= $current_public_message['is_important'] ? 'danger' : 'warning' ?>">
                                        <h5 class="mb-0">📌 پیام عمومی فعال</h5>
                                    </div>
                                    <div class="card-body bg-dark">
                                        <div class="public-message-content p-3 rounded bg-secondary bg-opacity-10">
                                            <?= nl2br(htmlspecialchars($current_public_message['content'])) ?>
                                        </div>
                                    </div>
                                </div>
                            <?php endif; ?>
                            
                            <form id="publicMessageForm" class="mb-4">
                                <div class="card bg-secondary bg-opacity-10">
                                    <div class="card-header bg-success">
                                        <h5 class="mb-0">➕ ایجاد پیام عمومی جدید</h5>
                                    </div>
                                    <div class="card-body">
                                        <div class="mb-3">
                                            <label class="form-label">متن پیام عمومی:</label>
                                            <textarea class="form-control" id="publicMessageContent" rows="4" required></textarea>
                                        </div>
                                        <div class="form-check mb-3">
                                            <input class="form-check-input" type="checkbox" id="isImportant">
                                            <label class="form-check-label text-warning" for="isImportant">
                                                علامت‌گذاری به عنوان پیام مهم
                                            </label>
                                        </div>
                                        <button type="submit" class="btn btn-success">
                                            <i class="fas fa-bullhorn me-2"></i> ثبت پیام جدید
                                        </button>
                                    </div>
                                </div>
                            </form>
                            
                            <hr class="border-secondary my-4">
                            
                            <h5 class="text-info mb-3">📋 تاریخچه اعلان‌ها</h5>
                            <div class="table-responsive">
                                <table class="table table-dark table-hover">
                                    <thead>
                                        <tr>
                                            <th width="50%">متن</th>
                                            <th width="20%">تاریخ</th>
                                            <th width="15%">وضعیت</th>
                                            <th width="15%">عملیات</th>
                                        </tr>
                                    </thead>
                                    <tbody id="publicMessagesList">
                                        <?php foreach ($all_public_messages as $message): ?>
                                            <tr class="<?= $message['is_active'] ? 'table-success' : '' ?>">
                                                <td><?= mb_substr(htmlspecialchars($message['content']), 0, 100) ?>...</td>
                                                <td><?= date('Y/m/d H:i', strtotime($message['created_at'])) ?></td>
                                                <td><?= $message['is_active'] ? '<span class="badge bg-success">فعال</span>' : '<span class="badge bg-secondary">بایگانی</span>' ?></td>
                                                <td>
                                                    <button class="btn btn-sm btn-outline-danger delete-public-message-btn" 
                                                            data-message-id="<?= $message['id'] ?>">
                                                        <i class="fas fa-trash"></i>
                                                    </button>
                                                    <?php if (!$message['is_active']): ?>
                                                        <button class="btn btn-sm btn-outline-success activate-public-message-btn" 
                                                                data-message-id="<?= $message['id'] ?>">
                                                            <i class="fas fa-play"></i>
                                                        </button>
                                                    <?php endif; ?>
                                                    <button class="btn btn-sm btn-outline-info view-public-message-btn" 
                                                            data-message-id="<?= $message['id'] ?>">
                                                        <i class="fas fa-eye"></i>
                                                    </button>
                                                </td>
                                            </tr>
                                        <?php endforeach; ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="viewConversationModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content bg-dark">
            <div class="modal-header">
                <h5 class="modal-title text-warning" id="conversationModalTitle">📨 مکالمه</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="بستن"></button>
            </div>
            <div class="modal-body">
                <div id="conversationMessages" style="max-height: 400px; overflow-y: auto; padding: 10px; margin-bottom: 20px;"></div>
                
                <div class="pt-3 border-top border-secondary">
                    <h6 class="text-info mb-3">📤 ارسال پاسخ</h6>
                    <form id="replyConversationForm">
                        <input type="hidden" id="replyContactId" name="contact_id">
                        <input type="hidden" id="replyCurrentSubject" name="current_subject">
                        
                        <div class="mb-3">
                            <textarea class="form-control" id="replyContent" rows="3" placeholder="پاسخ خود را بنویسید..." required></textarea>
                        </div>
                        
                        <div class="d-flex justify-content-end">
                            <button type="submit" class="btn btn-success" id="replySubmitBtn">
                                <i class="fas fa-paper-plane me-1"></i> ارسال پاسخ
                            </button>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>

<div class="modal fade" id="viewPublicMessageModal" tabindex="-1" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content bg-dark">
            <div class="modal-header">
                <h5 class="modal-title text-warning">📢 مشاهده اعلان عمومی</h5>
                <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button>
            </div>
            <div class="modal-body" id="publicMessageContentBody"></div>
        </div>
    </div>
</div>

<style>
.unread-message { background-color: rgba(220, 53, 69, 0.1) !important; font-weight: bold; }
.unread-message td { border-left: 3px solid #dc3545; }
.sent-message { background: rgba(13, 110, 253, 0.2); border-right: 3px solid #0d6efd; margin-left: auto; margin-right: 0; max-width: 80%; padding: 10px; border-radius: 10px; margin-bottom: 10px; }
.received-message { background: rgba(25, 135, 84, 0.2); border-left: 3px solid #198754; margin-left: 0; margin-right: auto; max-width: 80%; padding: 10px; border-radius: 10px; margin-bottom: 10px; }
.avatar-circle { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 1.2rem; color: white; }
.conversation-row { cursor: pointer; transition: all 0.2s; }
.conversation-row:hover { background: rgba(255,255,255,0.05); }
.pulse-animation { animation: pulse 2s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(220, 53, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(220, 53, 69, 0); } }
</style>

<script>
document.addEventListener('DOMContentLoaded', function() {
    
    // ارسال پیام جدید (ایجاد گفتگوی جدید)
    document.getElementById('sendMessageForm').addEventListener('submit', function(e) {
        e.preventDefault();
        
        const formData = new URLSearchParams();
        formData.append('action', 'create_new_conversation');
        formData.append('receiver_id', document.getElementById('receiverSelect').value);
        formData.append('subject', document.getElementById('messageSubject').value);
        formData.append('message', document.getElementById('messageContent').value);
        
        const btn = this.querySelector('button[type="submit"]');
        btn.disabled = true; btn.innerHTML = 'در حال ارسال...';
        
        fetch('ajax.php', { method: 'POST', body: formData })
        .then(r => r.json())
        .then(res => {
            if(res.success) {
                alert('پیام ارسال شد');
                location.reload();
            } else {
                alert('خطا: ' + res.message);
                btn.disabled = false; btn.innerHTML = 'ارسال پیام جدید';
            }
        });
    });

    // ارسال پیام عمومی
    document.getElementById('publicMessageForm').addEventListener('submit', function(e) {
        e.preventDefault();
        
        const formData = new URLSearchParams();
        formData.append('action', 'create_public_message');
        formData.append('content', document.getElementById('publicMessageContent').value);
        formData.append('is_important', document.getElementById('isImportant').checked ? 1 : 0);
        
        const btn = this.querySelector('button[type="submit"]');
        btn.disabled = true; btn.innerHTML = 'در حال ثبت...';
        
        fetch('ajax.php', { method: 'POST', body: formData })
        .then(r => r.json())
        .then(res => {
            if(res.success) {
                alert('اعلان ثبت شد');
                location.reload();
            } else {
                alert('خطا: ' + res.message);
                btn.disabled = false; btn.innerHTML = 'ثبت پیام جدید';
            }
        });
    });

    // ارسال پاسخ در مودال
    document.getElementById('replyConversationForm').addEventListener('submit', function(e) {
        e.preventDefault();
        
        const formData = new URLSearchParams();
        formData.append('action', 'send_message');
        formData.append('receiver_id', document.getElementById('replyContactId').value);
        formData.append('subject', document.getElementById('replyCurrentSubject').value);
        formData.append('message', document.getElementById('replyContent').value);
        
        const btn = document.getElementById('replySubmitBtn');
        btn.disabled = true; btn.innerHTML = 'در حال ارسال...';
        
        fetch('ajax.php', { method: 'POST', body: formData })
        .then(r => r.json())
        .then(res => {
            if(res.success) {
                location.reload();
            } else {
                alert('خطا: ' + res.message);
                btn.disabled = false; btn.innerHTML = 'ارسال پاسخ';
            }
        });
    });
    
    // مدیریت دکمه‌های پیام عمومی (حذف، فعال‌سازی، مشاهده)
    document.getElementById('publicMessagesList').addEventListener('click', function(e) {
        if(e.target.closest('.delete-public-message-btn')) {
            if(!confirm('آیا مطمئن هستید؟')) return;
            const btn = e.target.closest('.delete-public-message-btn');
            const id = btn.dataset.messageId;
            const fd = new URLSearchParams(); fd.append('action', 'delete_public_message'); fd.append('message_id', id);
            fetch('ajax.php', {method:'POST', body:fd}).then(r=>r.json()).then(res=>{
                if(res.success) location.reload(); else alert(res.message);
            });
        }
        
        if(e.target.closest('.activate-public-message-btn')) {
            const btn = e.target.closest('.activate-public-message-btn');
            const id = btn.dataset.messageId;
            const fd = new URLSearchParams(); fd.append('action', 'toggle_public_message_active'); fd.append('message_id', id); fd.append('action_type', 'activate');
            fetch('ajax.php', {method:'POST', body:fd}).then(r=>r.json()).then(res=>{
                if(res.success) location.reload(); else alert(res.message);
            });
        }
        
        if(e.target.closest('.view-public-message-btn')) {
            const btn = e.target.closest('.view-public-message-btn');
            const id = btn.dataset.messageId;
            fetch('ajax.php?action=get_public_message_details&message_id='+id)
            .then(r=>r.json())
            .then(res=>{
                if(res.success) {
                    document.getElementById('publicMessageContentBody').innerHTML = res.message.content.replace(/\n/g, '<br>');
                    new bootstrap.Modal(document.getElementById('viewPublicMessageModal')).show();
                }
            });
        }
    });
});

// تابع مشاهده مکالمه
function viewConversation(contactId, contactName, subject) {
    document.getElementById('conversationModalTitle').textContent = `📨 مکالمه با ${contactName}`;
    document.getElementById('replyContactId').value = contactId;
    document.getElementById('replyCurrentSubject').value = subject;
    document.getElementById('replyContent').value = '';
    
    const container = document.getElementById('conversationMessages');
    container.innerHTML = '<div class="text-center text-warning"><i class="fas fa-spinner fa-spin fa-2x"></i><br>در حال بارگذاری...</div>';
    
    // ارسال موضوع برای دریافت فقط پیام‌های همین رشته
    fetch(`ajax.php?action=get_conversation&contact_id=${contactId}&subject=${encodeURIComponent(subject)}`)
    .then(r => r.json())
    .then(data => {
        container.innerHTML = '';
        if(data.success && data.messages.length > 0) {
            // پیام‌ها را نمایش می‌دهیم
            let html = '';
            // چون ترتیب آرایه از سرور DESC (نزولی - جدیدترین در ایندکس 0) است، 
            // با پیمایش عادی و اضافه کردن به HTML، جدیدترین پیام در بالای صفحه قرار می‌گیرد.
            data.messages.forEach(msg => {
                const isMe = msg.sender_id == <?= $_SESSION['user_id'] ?>;
                const cssClass = isMe ? 'sent-message' : 'received-message';
                const senderName = isMe ? 'شما' : contactName;
                
                html += `
                    <div class="${cssClass}">
                        <div class="d-flex justify-content-between mb-1">
                            <strong class="small">${senderName}</strong>
                            <small class="text-muted" style="font-size:0.75rem">${new Date(msg.created_at).toLocaleString('fa-IR')}</small>
                        </div>
                        <div>${msg.message.replace(/\n/g, '<br>')}</div>
                    </div>
                `;
            });
            container.innerHTML = html;
            
            // اسکرول به بالا برای دیدن جدیدترین پیام
            container.scrollTop = 0;
            
            // مارک کردن به عنوان خوانده شده
            const fd = new URLSearchParams();
            fd.append('action', 'mark_conversation_read');
            fd.append('contact_id', contactId);
            fd.append('subject', subject);
            fetch('ajax.php', {method:'POST', body:fd});
            
            new bootstrap.Modal(document.getElementById('viewConversationModal')).show();
        } else {
            container.innerHTML = '<div class="alert alert-info">پیامی یافت نشد.</div>';
            new bootstrap.Modal(document.getElementById('viewConversationModal')).show();
        }
    });
}

function deleteConversation(contactId, subject) {
    if(!confirm('آیا مطمئن هستید که می‌خواهید این رشته گفتگو را حذف کنید؟')) return;
    
    const fd = new URLSearchParams();
    fd.append('action', 'delete_conversation');
    fd.append('contact_id', contactId);
    fd.append('subject', subject);
    
    fetch('ajax.php', { method: 'POST', body: fd })
    .then(r => r.json())
    .then(res => {
        if(res.success) location.reload();
        else alert(res.message);
    });
}
</script>